<?php

class seccode {

	var $code;
	var $type 	= 0;
	var $width 	= 150;
	var $height 	= 60;
	var $background	= 1;
	var $adulterate	= 1;
	var $ttf 	= 0;
	var $angle 	= 0;
	var $warping 	= 0;
	var $scatter	= 0;
	var $color 	= 1;
	var $size 	= 0;
	var $shadow 	= 1;
	var $animator 	= 0;
	var $fontpath	= '';
	var $datapath	= '';
	var $includepath= '';

	var $fontcolor;
	var $im;

	function display_seccode(){
	    session_start();
	    //Settings: You can customize the captcha here
	    $image_width = 90;
	    $image_height = 32;
	    $characters_on_image = 6;
	    $font = DZ_ROOT.'./static/seccode/font/en/monofont.ttf';
	
	    //The characters that can be used in the CAPTCHA code.
	    //avoid confusing characters (l 1 and i for example)
	    $possible_letters = '23456789bcdfghjkmnpqrstvwxyz';
	    $random_dots = 10;
	    $random_lines = 30;
	    $captcha_text_color="0x142864";
	    $captcha_noice_color = "0x142864";
	
	    $code = '';
	
	    $i = 0;
	    while ($i < $characters_on_image) { 
	        $code .= substr($possible_letters, mt_rand(0, strlen($possible_letters)-1), 1);
	        $i++;
	    }
	
	    $font_size = $image_height * 0.75;
	    $image = @imagecreate($image_width, $image_height);
	    
	    /* setting the background, text and noise colours here */
	    $background_color = imagecolorallocate($image, 255, 255, 255);
	
	    $arr_text_color = $this->hexrgb($captcha_text_color);
	    $text_color = imagecolorallocate($image, $arr_text_color['red'], $arr_text_color['green'], $arr_text_color['blue']);
	
	    $arr_noice_color = $this->hexrgb($captcha_noice_color);
	    $image_noise_color = imagecolorallocate($image, $arr_noice_color['red'], $arr_noice_color['green'], $arr_noice_color['blue']);
	
	    /* generating the dots randomly in background */
	    for( $i=0; $i<$random_dots; $i++ ) {
	        imagefilledellipse($image, mt_rand(0,$image_width),mt_rand(0,$image_height), 2, 3, $image_noise_color);
	    }
	    
	    /* generating lines randomly in background of image */
	    for( $i=0; $i<$random_lines; $i++ ) {
	        imageline($image, mt_rand(0,$image_width), mt_rand(0,$image_height),mt_rand(0,$image_width), mt_rand(0,$image_height), $image_noise_color);
	    }
	
	    /* create a text box and add 6 letters code in it */
	    $textbox = imagettfbbox($font_size, 0, $font, $code); 
	    $x = ($image_width - $textbox[4])/2;
	    $y = ($image_height - $textbox[5])/2;
	    imagettftext($image, $font_size, 0, $x, $y, $text_color, $font , $code);
	
	    /* Show captcha image in the page html page */
	    header('Content-Type: image/jpeg');// defining the image type to be shown in browser widow
	    imagejpeg($image);//showing the image
	    imagedestroy($image);//destroying the image instance
	    $_SESSION['6_letters_code'] = $code;
	}
	
	function hexrgb ($hexstr)
	{
	  $int = hexdec($hexstr);
	
	  return array("red" => 0xFF & ($int >> 0x10),
	               "green" => 0xFF & ($int >> 0x8),
	               "blue" => 0xFF & $int);
	}
}
?>